<?php

/**
 * Funciona de forma estática para provê funcões de registro no banco de dados
 * @author heekinho
 */
class Register {

	/**
	 * Verifica se determinado existe no banco de dados.
	 * @author heekinho
	 * @param string $user
	 * @return bool
	 */
	public static function user_exists($user){
		global $database;
		$database->query("SELECT * FROM Usuario WHERE nome='$user'");
		if($database->num_rows() > 0) return true;
		return false;
	}

	/**
	 * Registra um usuário no banco de dados
	 * @author heekinho
	 * @param string $login
	 * @param string $nome
	 * @param string $tipo
	 * @param string $senha
	 * @param string $cpf
	 * @param string $email
	 * @return Resource
	 */
	public static function register_user($login, $nome, $tipo, $senha, $cpf, $email){
		global $database;

		$database->query("INSERT INTO Usuario SET
			TipoUsuario_ID='".$tipo."',
			nome='".$nome."',
			cpf='".$cpf."',
			login='".$login."',
			senha='".md5($senha)."',
			email='".$email."'
		");

		$database->query("SELECT ID FROM Usuario WHERE cpf='$cpf'");
		return $database->get('Usuario', 'ID');
	}

	/**
	 * Cadastra um telefone para determinado usuário
	 * @author heekinho
	 * @param string $userid ID do usuário
	 * @param string $numero numero a ser gravado
	 */
	public static function register_phone($userid, $numero){
		global $database;
		$database->query("INSERT INTO Telefone SET
			Usuario_ID='".$userid."',
			numero='".$numero."'
		");
	}

	/**
	 * Registra características de alunos no banco de dados
	 * @author heekinho
	 * @param string $userid
	 * @param string $matricula
	 * @param string $semestre
	 */
	public static function register_discente($userid, $matricula, $semestre){
		global $database;
			
		$database->query("INSERT INTO Discente SET
			Usuario_ID='".$userid."',
			nMatricula='".$matricula."',
			semestre='".$semestre."'
		");
	}

	/**
	 * Registra características de professores no banco de dados.
	 * @author heekinho
	 * @param string $userid
	 * @param string $matricula
	 */
	public static function register_docente($userid, $matricula){
		global $database;
			
		$database->query("INSERT INTO Docente SET
			Usuario_ID='".$userid."',
			nMatricula='".$matricula."'
		");
	}

	/**
	 * Registra o endereço de determinado usuário no banco de dados
	 * @author heekinho
	 * @param string $userid
	 * @param string $logradouro
	 * @param string $numero
	 * @param string $cidade
	 * @param string $cep
	 * @param string $estado
	 * @param string $bairro
	 */
	public static function register_endereco($userid, $logradouro, $numero, $cidade, $cep, $estado, $bairro){
		global $database;
		$database->query("INSERT INTO Endereco SET
			Usuario_ID='".$userid."',
			logradouro='".$logradouro."',
			numero='".$numero."',
			cidade='".$cidade."',
			cep='".$cep."',
			estado='".$estado."',
			bairro='".$bairro."'
		");
	}

	/**
	 * Registra uma disciplina no banco de dados
	 * @author Igo
	 * @author Ph
	 * @param string $disciplineid
	 * @param string $codigo
	 * @param string $departamentoid
	 * @param string $tipodisciplina
	 * @param string $cargahoraria
	 * @param string $semestre
	 * @return Resource
	 */
	public static function register_disciplina($nome, $codigo, $departamentoid, $tipodisciplina, $cargahoraria, $semestre){
		global $database;
		$database ->query("INSERT INTO Disciplina SET
			nome = '".$nome."',
			codigo = '".$codigo."',
			cargahoraria = '".$cargahoraria."',
			semestre = '".$semestre."',
			Departamento_ID = '".$departamentoid."',
			TipoDisciplina_ID = '".$tipodisciplina."'
        ");

		$database->query("SELECT ID FROM Disciplina WHERE nome='$nome'");
		return $database->get('Disciplina', 'ID');
	}


	/**
	 * Registra um tipo de disciplina no banco de dados
	 * @author heekinho
	 * @param string $descricao
	 */
	public static function register_type($table, $descricao){
		global $database;
		$database ->query("INSERT INTO $table SET descricao = '$nome'");
	}


	/**
	 * Registra um departamento no banco de dados
	 * @author Igo
	 * @author Ph
	 * @param string $nome
	 * @param string $email
	 * @return Resource
	 */
	public static function register_department($nome, $email){
		global $database;
		$database -> query("INSERT INTO Departamento SET
			nome = '".$nome."',
			email = '".$email."'
        ");

		$database -> query("SELECT ID FROM Departamento WHERE nome = '$nome'");
		return $database -> get('Departamento', 'ID');
	}
	
	/**
	 * Registra um semestre no banco
	 * @author Igo
	 * @author Ph
     * @author Jomas
	 * @param string $semestre
	 * @return unknown
	 */
	public static function register_semestre($semestre){
		global $database;
		$database ->query("INSERT INTO OfertaSemestral SET
			semestre = '".$semestre."'
		");

		$database->query("SELECT ID FROM OfertaSemestral WHERE semestre='$semestre'");
		return $database->get('OfertaSemestral', 'ID');
	}

	/**
	 * Registra uma oferta semestral no banco
	 * @author Igo
	 * @author Ph
	 * @param string $disciplina
	 * @param string $semestre
	 * @param string $docente
	 * @param string $numerovagas
	 */
	public static function register_ofertasemestral($disciplina, $semestre, $docente, $numerovagas){
		global $database;
		$database ->query("INSERT INTO OfertaSemestral_Disciplina SET
			OfertaSemestral_ID = '".$semestre."',
            Disciplina_ID = '".$disciplina."',
            Docente_Usuario_ID = '".$docente."',
            nVagas = '".$numerovagas."'
		");

	}
    
    /**
	 * Registra uma disciplina cursada por um discente em um semestre.
	 * @author Carlos
     * @param string $discente
     * @param string $situacao
	 * @param string $semestre
     * @param string $departamento
     * @param string $disciplina
	 * @param string $nota
	 */
    public static function register_disciplinacursada($discente, $situacao, $semestre, $departamento, $disciplina, $nota){
		global $database;
		$database ->query("INSERT INTO DisciplinaCursada SET
			Discente_Usuario_ID = '".$discente."',
            Situacao_ID = '".$situacao."',
            OfertaSemestral_Disciplina_Disciplina_Departamento_ID = '".$departamento."',
            OfertaSemestral_Disciplina_OfertaSemestral_ID = '".$semestre."',
            OfertaSemestral_Disciplina_Disciplina_ID = '".$disciplina."',
            nota = '".$nota."'
		");

	}

    /**
	 * Registra um pre-requisito de uma disciplina
	 * @author Igo
	 * @param string $disciplina
     *  @param string $prerequisito
	 * @return Resource
	 */
    public static function register_prerequisito($disciplina, $prerequisito){
        global $database;
        $database-> query("SELECT Departamento_ID FROM Disciplina Where ID=$disciplina" );
        $iddepartamentodisciplina = $database->get('Disciplina', 'Departamento_ID');

         $database-> query("SELECT Departamento_ID FROM Disciplina Where ID= $prerequisito");
         $iddepartamentoprerequisito = $database->get('Disciplina', 'Departamento_ID');

         $database->query("INSERT INTO PreRequisito SET

            Disciplina_ID = '".$disciplina."',
            Disciplina_Departamento_ID =  '".$iddepartamentodisciplina."',
            PreRequisito_Disciplina_ID='".$prerequisito."',
            PreRequisito_Disciplina_Departamento_ID= '".$iddepartamentoprerequisito."'
            ");
        
    }

}
?>